//引入菜单的接口方法
import { bannerlist, allBanner } from "../../request/api";

export default {
    state: {
        bannerList: [],//这是banner的初始数组
        is: {//判断是否显示dialog 弹窗
            show: false
        },
        total: 0, //这是页码总数
        pageNum: 1,//这是页码数
        pageSize: 4,//这是条数
    },
    getters: {},
    mutations: {
        //修改banner数据 初始数据
        REQ_BANNER(state, payload) {
            state.bannerList = payload;
        },

        //修改dialog弹窗
        changeDialog(state, payload) {
            state.is.show = payload;
        },

        //修改总数
        changeTotal(state, payload) {
            state.total = payload;
        },

        //修改page页码数
        changePage(state, payload) {
            state.pageNum = payload;
        }
    },
    actions: {
        //异步操作 获取数据 banner
        getBanner(context) {
            bannerlist({ page: context.state.pageNum, size: context.state.pageSize }).then(res => {
                let list = res.list ? res.list : [];
                //解决删除的bug
                if (context.state.pageNum != 1 && list.length == 0) {
                    //修改页数为前一页
                    context.dispatch('getPage', context.state.pageNum - 1);
                    return;
                }
                //第一次 修改数据 渲染页面
                context.commit("REQ_BANNER", res.list);
            });
            //获取总条数
            context.dispatch('getBannerTotal');
        },

        //获取总条数
        getBannerTotal(context) {
            //获取总条数的接口
            allBanner().then(res => {
                //传给 mutations  修改数据
                context.commit('changeTotal', res.list[0].total);
            })
        },

        //切换分页 获取数据
        getPage(context, payload) {
            //切换分页
            context.commit('changePage', payload);
            //切换分页之后 要重新获取数据
            context.dispatch('getBanner');
        }
    },
    namespaced: true
}